There are many major challenges in the field of digital video decompression. The design of decompression engines, referred to here as decoders, becomes more difficult as the compression formats and algorithms become more complex, and as the size or resolution of the images increases and as the bit rates increase. Traditionally, video decoders decode the compressed bit stream sequentially, in the order that the data is received, without parallel processing of multiple rows. For some video formats, picture sizes and bit rates, this traditional method may require extremely high levels of performance that may be either impractical or very expensive.
Some existing video decoders improve performance by decoding multiple rows of video in parallel, using parallel processors. In other words, multiple rows are decoded in parallel, with the start of decoding of each row being as early as the bit stream and a decode processor are available, and proceeding at whatever rate the processor delivers. A row is a set of macroblocks, typically 16×16 pixels each, which span the image from left to right, with a height of one macroblock. Some existing MPEG-2 HD (high definition) MPEG decoders decode 2 rows in parallel. This is possible because of a few attributes of the MPEG-2 video bit stream format, notably (a) each row has a start code that the decoder can find without necessarily decoding the row before or above it, and (b) each row can be decoded independently of the other rows in the same picture.
Some newer video compression formats, such as the Joint Video Team (JVT) project of ISO-MPEG and ITU-VCEG, provide much better compression than MPEG-2, in terms of compressed bit rate for a given level of quality. This makes them attractive for commercial deployment. However, they are also much more complex to encode and decode than MPEG-2. There is a desire to have a practical, low cost decoder that can decode JVT video at HD resolutions and bit rates. Since JVT is much more complex to decode than MPEG-2, the motivation to find a way to implement a decoder with parallel operations is even greater than that for MPEG-2.
However, JVT video does not have the second property of MPEG-2 video listed above; that is, each row cannot be decoded independently of the other rows in the picture. On the contrary, each row typically depends upon the results of decoding some portions of other rows in the same picture. This makes it difficult to design a decoder that can decode more than one row in parallel. Some experts believe it is impossible to decode multiple portions of a picture concurrently using the JVT format, due to the interdependency between rows.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.